package com.peas.platform.module.icims.expenditure.expenses.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.peas.platform.framework.mybatisplus.service.BaseService;
import com.peas.platform.module.icims.expenditure.basal.enums.ExpenditureAccountType;
import com.peas.platform.module.icims.expenditure.expenses.api.req.ExpenditureReimbursementReq;
import com.peas.platform.module.icims.expenditure.expenses.api.req.ReplenishExpenditureReimbursementReq;
import com.peas.platform.module.icims.expenditure.expenses.api.req.SaveExpenditureReimbursementReq;
import com.peas.platform.module.icims.expenditure.expenses.api.req.SubmitExpenditureReimbursementReq;
import com.peas.platform.module.icims.expenditure.expenses.dto.ExpenditureReimbursementDto;

import java.util.List;

public interface ExpenditureReimbursementService extends BaseService<ExpenditureReimbursementDto> {

    ExpenditureReimbursementDto saveExpenditureReimbursement(SaveExpenditureReimbursementReq vo);

    void submitExpenditureReimbursement(SubmitExpenditureReimbursementReq vo);

    void replenishExpenditureReimbursement(ReplenishExpenditureReimbursementReq vo);

    void revocationExpenditureReimbursement(Long id);

    void receiptExpenditureReimbursement(Long id);

    Page<ExpenditureReimbursementDto> queryExpenditureReimbursement(Page<ExpenditureReimbursementDto> pager, ExpenditureReimbursementReq req, ExpenditureAccountType accountType);

    void refreshExpenditureReimbursement(List<Long> expenditureReimbursementIds);

}
